package captcha

import (
	"image/color"
	"image/png"
	"time"
	"uap/common"

	"github.com/afocus/captcha"
	"github.com/gin-gonic/gin"
)

func Init(fontBytes *[]byte) {
	common.Captcha = captcha.New()
	// 可以设置多个字体 或使用cap.AddFont("xx.ttf")追加
	// common.Captcha.SetFont("static/comic.ttf")
	common.Captcha.AddFontFromBytes(*fontBytes)
	// 设置验证码大小
	common.Captcha.SetSize(85, 32)
	// 设置干扰强度
	common.Captcha.SetDisturbance(captcha.MEDIUM)
	// 设置前景色 可以多个 随机替换文字颜色 默认黑色
	// common.Captcha.SetFrontColor(color.RGBA{255, 255, 255, 255})
	common.Captcha.SetFrontColor(color.Black)
	// 设置背景色 可以多个 随机替换背景色 默认白色
	// common.Captcha.SetBkgColor(color.RGBA{255, 0, 0, 255}, color.RGBA{0, 0, 255, 255}, color.RGBA{0, 153, 0, 255})
	common.Captcha.SetBkgColor(color.RGBA{213, 224, 248, 150})

}

func CreatCaptcha(c *gin.Context, uuid string) {
	img, str := common.Captcha.Create(4, captcha.NUM)
	common.LocalCache.Set(uuid, str, time.Second*60)
	png.Encode(c.Writer, img)
}
